Перейти к основному содержимому

Agile (Гибкие методологии)

Гибкие методологии

Agile (Семейство гибких методологий) - это семейство подходов к разработке программного обеспечения, ориентированных на использование итеративной разработки, динамическое формирование требований и обеспечение их реализации в результате постоянного взаимодействия внутри самоорганизующихся рабочих групп, состоящих из специалистов различного профиля.

Четыре ключевые ценности Agile:​

  1. Основное внимание уделяется людям, работающим над проектом, и их взаимодействию, а не жестким правилам и инструментам
  2. Важнее создать рабочий продукт, чем тратить слишком много времени на документацию
  3. Постоянное сотрудничество с клиентом и быстрая реакция на его запросы важнее формальных договоренностей
  4. Быстрая адаптация к изменениям приоритетнее следования первоначальному плану

Если вы заметили, то я преписал, что agile не просто методология, а семейство методологий, которое содержит в себе две основные методологии: это SCRUM и Kanban. Давайте рассмотрим им изх немножечко подробнее.

Гибкие методологии

Scrum​

Scrum - это методология гибкой разработки программного обеспечения из семейства методологий Agile. Scrum делает акцент на регулярной демонстрации готового функционала клиенту и быстрой адаптации к изменениям, что сразу закрывает основные минусы Waterfall, но у SCRUM тоже есть свои минусы, которые мы обговорим вместе с плюсами немного позже.

Суть этой методологии заключает в том, что при её использовании проект разбивается на короткие итерации, называемые спринтами (обычно спринт идёт от 1 до 4 недель). В конце каждого спринта команда предоставляет готовую часть продукта, которую уже можно использовать или тестировать. При этом в начале проекта нет полного представления о конечном продукте: требования могут изменяться в процессе разработки, чего при сравнении у Waterfall нет.

Давайте, чтобы понятно было для чего, как и где используют Scrum пройдёмся по основным вопросам относительно него:

Зачем нужен Scrum?​

Scrum используют в проектах, где требования могут меняться по ходу работы. Это особенно полезно, когда команда ещё не знает финальный вид продукта на 100% и хочет регулярно сверяться с заказчиком или пользователями. Такой подход позволяет:

  • быстрее получить результат
  • раньше замечать ошибки
  • проще реагировать на изменения, не то что Waterfall)

Как работает Scrum?​

Работа в Scrum строится циклично и закономерно, повторяясь:

  1. Сначала собирается список задач и идей по продукту, его называют backlog (бэклог)
  2. Затем команда выбирает, что сможет сделать в ближайший спринт (цикл)
  3. Во время спринта идёт работа над выбранными задачами на шаге 2
  4. В конце команда показывает результат (пользователям, заказчику, тимлиду или директору проекта)
  5. После этого обсуждает, что получилось хорошо, а что можно улучшить ещё
  6. Далее начинается следующий спринт (см. шаг 2)

То есть, Scrum является эдаким циклом while True, который с каждым циклом (итерацией в нашем случае) делает твой проект только лучше. И именно этим он хорош; поэтому SCRUM самая популярная методология среди всех существующих, коих знаем мы не много.

Основные элементы Scrum​

Product Backlog​

Формально: Product Backlog - это упорядоченный по приоритету список всех задач, улучшений, багов и требований, необходимых для развития продукта. Он служит единым источником информации, определяет планы разработки и постоянно обновляется в соответствии с рынком и обратной связью. Самые важные задачи находятся вверху списка
Неформально: Бэклог - это список всех вещей для проекта, которые будут реализованы

Sprint Backlog​

По факту, это задачи, которые команда разработчиков проекта выбрала на созвоне/встрече выбрала по завершению спринта/итерации перед началом нового и для нового спринта

Спринт​

Спринт - это промежуток времени, цикл, за время которого должны выполниться поставленный спринт-бэклог. В среднем, спринт проходит от 1 до 4 недель, то бишь 1 месяц зачастую.

Daily Scrum​

Daily Scrum (A.K.A Дэйли) - это ежедневный "созвон" разработчиков команды, которые деляться результатами за день и рассказывают что планируют делать завтра и какие препятствия встретили сегодня на пути, нужна ли им в этом помощь. Что-то типо brain-шторма)

Sprint Review​

Так называют момент, когда команда разработчиков и сотрудников показывают свои успехи за прошедший спринт. Зачастую отображение сделанного делают для инвестора, начальства или чего-то ещё

Роли в Scrum​

Product Owner​

Отвечает за то, что именно должно быть сделано. Он управляет бэклогом, определяет приоритеты и следит за тем, чтобы команда работала над действительно важными задачами.

Scrum Master​

Следит за тем, чтобы Scrum-процесс работал верно. Помогает команде убирать препятствия, улучшать взаимодействие и соблюдать принципы Scrum, не выходя за его рамки

Команда разработки​

Это специалисты, которые выполняют задачи спринта и создают результат. В команде могут быть разработчики, аналитики, тестировщики, дизайнеры и другие участники проекта, которые нужны проекту.

Преимущества и недостатки​

  • Быстрый цикл работы, по сравнению с Waterfal
  • Гибкость и адаптация к изменениям, происходит от перевода
  • Постоянная обратная связь от других разработчиков
  • Понятный ритм работы команды

Kanban (Канбан)​

Kanban - это подход к организации работы, при котором задачи визуализируются на доске и проходят через этапы выполнения.
В отличие от Scrum, в Kanban нет спринтов и жёстких циклов. Работа идёт непрерывно: задачи добавляются, выполняются и завершаются по мере готовности команды.

Зачем нужен Kanban?​

Kanban используют, когда задачи поступают постоянно и важно поддерживать стабильный поток работы. Такой подход помогает видеть весь процесс работы, быстрее находить узкие места и не перегружать команду.

Как работает Kanban?​

Работа в Kanban строится, как непрерывный поток:

  1. Все задачи попадают в общий список (НЕ путать с бэклогом)
  2. Они отображаются на доске
  3. Команда берёт задачи в работу по мере освобождения
  4. Задачи проходят через этапы (Например, To Do → In Progress → Done)
  5. После завершения задача считается готовой

Основные элементы Kanban​

Kanban-доска​

Это визуальная доска с колонками, которые отражают этапы работы. Всего этих этапов три:

  • To Do (Сделать)
  • In Progress (В работе)
  • Done (Готово)

WIP-лимиты​

Ограничение на количество задач в работе. Помогает команде не брать слишком много задач одновременно.

Преимущества и недостатки​

  • Простота и понятность доски и процесса
  • Гибкость без жёстких рамок по времени и ресурсам
  • Помогает выявлять узкие места
  • Подходит для постоянного потока задач